home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2000 #4 / Amiga Plus CD - 2000 - No. 4.iso / Tools / Treiber / Misc / HyperIO / Install_HyperIO < prev    next >
Text File  |  2000-01-20  |  58KB  |  1,811 lines

  1. ;***************************************************************************************************
  2. ;***************************************************************************************************
  3. ;***
  4. ;***    hyperIO installation script
  5. ;***    ===========================
  6. ;***
  7. ;***    $VER: 1.2 (11.08.99)
  8. ;***
  9. ;***    ©1998-99 by Carsten 'michelangelo' Scholling
  10. ;***
  11. ;***
  12. ;***
  13. ;***    No changes outside of strings- and main-part!
  14. ;***
  15. ;***
  16. ;***************************************************************************************************
  17. ;***************************************************************************************************
  18.  
  19.  
  20. ;***************************************************************************************************
  21. ;***    Error handling stuff
  22. ;***************************************************************************************************
  23. (onerror (P_Cleanup))
  24.  
  25.  
  26. ;***************************************************************************************************
  27. ;***    Configuration defaults
  28. ;***************************************************************************************************
  29. (set #unarc            1)                    ;*** Unarchive (installation with archive).
  30.  
  31. (set #prgname        "hyperIO")                    ;*** Simply the program name.
  32. (set #dirname        "hyperIO")                    ;*** Directory name to be created at first install.
  33.  
  34. (set #devspat        "hyper#?.device")            ;*** Devs hyperCOM/PAR file pattern
  35. (set #libspat        "vmcresource.library")        ;*** Libs VMC file pattern
  36. (set #devsisdnpat    "vmcisdn#?.device")            ;*** If this is found, some components should not be deleted!
  37.  
  38. (set #instarc        "hyperio.lha")                ;*** Installation archive name.
  39. (set #lhexname        "lhex")                        ;*** Unarchiver name
  40. (set #lhexopts        "-q -f -w=")                ;*** lhex options
  41. (set #lhexcmd        "x")                        ;*** lhex parameters
  42. (set #tempdir        "ram:")                        ;*** Temporary directory for unarchiving
  43. (set #tempinstdir    "VMC-hyperIO-Install")        ;*** Directory which holds installation files after extraction
  44.  
  45. (set #destdevs        "Devs:")                    ;*** Default device installation path. Primary needed for update check.
  46. (set #destlibs        "Libs:")                    ;*** Default libs installation path. Primary needed for update check.
  47. (set #destdocs        "Sys:Utilities")            ;*** Default documentation installation path.
  48. (set #destdocsdir    "hyperIO")                    ;*** Default utils directory.
  49. (set #destutil        "Sys:Utilities")            ;*** Default utils installation path.
  50. (set #destutildir    "hyperIO")                    ;*** Default utils directory.
  51. (set #destback        "SYS:Storage")                ;*** Default backup path.
  52. (set #destbackdir    "hyperIO_backup")            ;*** Default backup directory.
  53.  
  54. (set #minosver        36)                            ;*** Minimum OS version
  55. (set #mincpu        0)                            ;*** Minimum CPU.
  56.  
  57. (set #instchoice    0)                            ;*** Global installation choice (update=0, new=1, back=2, deinstall=3, break=4)
  58. (set #instparts        %00001111)                    ;*** Bit mask of parts to install (0 = devs, 1 = libs, 2 = docs, 3 = utils)
  59. (set #instcards        %01111111)                    ;*** Bit mask of cards to install drivers for (0 = hc1, 1 = hc3, 2 = hc3z, 3 = hc4, 4 = hc3ihc4, 5 = hc3ihc3z, 6 = hp)
  60. (set #instutil        %00111111)                    ;*** Bit mask of utilities to install (0 = ncomm, 1 = ncomm-pk, 2 = hydra, 3 = porth. 4 = prtman, 5 = auxh.)
  61.  
  62. (set #vmchc1        "hyperCOM1.device")            ;***
  63. (set #vmchc3        "hyperCOM3.device")            ;***
  64. (set #vmchc4        "hyperCOM4?.device")        ;***
  65. (set #vmchc3z        "hyperCOM3?Z.device")        ;***
  66. (set #vmchp        "hyperPAR.device")            ;***
  67. (set #vmcrsc        "vmcresource.library")        ;***
  68.  
  69. (set #utilncomm        "ncomm306")                    ;***
  70. (set #utilncommpk    "NComm306PubKey")            ;***
  71. (set #utilhydra        "hydra")                    ;***
  72. (set #utilporth        "porthandler")                ;***
  73. (set #utilprtman    "prtman39")                    ;***
  74. (set #utilauxh        "auxhandler")                ;***
  75.  
  76.  
  77. ;***************************************************************************************************
  78. ;***    Debugging stuff
  79. ;***************************************************************************************************
  80.  
  81. (set #dbg 0)
  82.  
  83. (if (= 1 #dbg) (
  84.     (set #unarc 0)
  85. ))
  86.  
  87.  
  88.  
  89. ;***************************************************************************************************
  90. ;***    Strings
  91. ;***************************************************************************************************
  92.  
  93. ;***
  94. ;*** German strings
  95. ;***
  96. (if (= @language "deutsch") (
  97.  
  98.     (set #readmefile                "LiesMichZuerst.guide")
  99.  
  100.     (set #wronginstaller    (cat    "Achtung! Es ist eine alte Version des Programmes 'Installer' auf "
  101.                                     "Ihrem Amiga!\n\nDie Installation benötigt mindestens Installer "
  102.                                     "43.3.\n\nBitte überprüfen Sie Ihre Konfiguration!"))
  103.  
  104.     (set #msgmakedir                "Folgendes Verzeichnis wird nun erstellt: ")
  105.  
  106.     (set #msgdelete                    "\nFolgende Datei wird jetzt gelöscht:\n\n")
  107.  
  108.     (set #msgcopy                    "\nFolgende Datei wird jetzt kopiert:\n\n")
  109.  
  110.     (set #msgcopyover1        (cat    "\nEs wurde in der Quelldatei keine Versionsangabe gefunden.\nSoll diese Datei kopiert werden?\n\n"
  111.                                     "Zu installierende Datei: "))
  112.     (set #msgcopyover2                "\nBisher installierte Datei: ")
  113.     (set #msgcopyovernofile            "Bisher ist keine Datei installiert.")
  114.  
  115.     (set #msgwelcome1        (cat    "\nWillkommen zur \n\n" #prgname))
  116.     (set #msgwelcome2                " Installation.\n\n")
  117.  
  118.     (set #msgcopyright        (cat    "Copyright ©1992-1999 by VMC Harald Frank\n"
  119.                                     "<vmc@vmc.de>\n"
  120.                                     "http://www.vmc.de\n\n"
  121.                                     "Installer script ©1998-99 by Carsten 'michelangelo' Scholling\n"
  122.                                     "<cscholling@vmc.de>\n"
  123.                                     "http://www.vmc.de/cscholling/\n\n"))
  124.  
  125.     (set #msgoldinst        (cat    "Ich habe eine alte " #prgname " Installation auf Ihrem System gefunden.\n"
  126.                                     "Bitte wählen Sie, wie die Installation fortgesetzt werden soll.\n"))
  127.  
  128.     (set #msgoldfilesexp    (cat    "\n\n\nEs werden nun einige alte Dateien aus dem System entfernt.\n"
  129.                                     "Sie können im folgenden das Löschen jeder Datei einzeln bestätigen.\n"))
  130.  
  131.     (set #msgoldfilesave            "\n\n\nEs werden nun einige alte Dateien aus dem System entfernt.\n")
  132.  
  133.     (set #msgoldfiles2                "Bitte deselektieren Sie die Dateien/Verzeichnisse\ndie nicht gelöscht werden sollen:\n")
  134.  
  135.     (set #msgoldinstupdate            "Update der alten Version")
  136.     (set #msgoldinstnew                "Komplette Neuinstallation")
  137.     (set #msgoldinstback            "Backup anlegen, anschließend neu installieren")
  138.     (set #msgoldinstdeinst            "Alte Version deinstallieren")
  139.     (set #msgoldinstend                "Programm beenden")
  140.  
  141.     (set #msgwhichparts        (cat    "\nWelche Komponenten sollen installiert werden?\nAlle nicht selektierten Komponenten werden,\n"
  142.                                     "sofern vorhanden, automatisch deinstalliert!\n"))
  143.     (set #msgwhichpartsdeinst        "\nWelche Komponenten sollen deinstalliert werden?\n")
  144.  
  145.     (set #msgwhichdevs                "Devices")
  146.     (set #msgwhichlibs                "Libraries")
  147.     (set #msgwhichdocs                "Dokumentation")
  148.     (set #msgwhichutil                "Goodies")
  149.  
  150.     (set #msgworkingbackup            "\nErstelle ein Backup der alten Installation...\n")
  151.     (set #msgworkingsearchold        "\nSuche nach bereits installierten Komponenten... ;-)\n")
  152.     (set #msgworkingprepareinst        "\nBereite die Installation vor...\n")
  153.     (set #msgworkingpreparedeinst    "\nBereite die Deinstallation vor...\n")
  154.     (set #msgworkinginst            "\nArbeite an der Installation...\n")
  155.     (set #msgworkingdeinst            "\nArbeite an der Deinstallation...\n")
  156.     (set #msgworkingcleanup            "\nTemporäre Dateien werden entfernt...\n")
  157.  
  158.     (set #msguptodate        (cat    "Die zu installierende " #prgname " Version ist auf dem neusten Stand.\n"
  159.                                     "Bitte wählen Sie, ob Sie eine Neu- oder Deinstallation wünschen, oder\n"
  160.                                     "ob der Installer beendet werden soll.\n"))
  161.  
  162.     (set #msgaskdevs        (cat    "In welchem Verzeichnis sollen die Device-Treiber installiert werden?\n"
  163.                                     "Es wird KEIN Verzeichnis erstellt!\n"))
  164.     (set #msgaskdevsdeinst            "In welchem Verzeichnis sind die Device-Treiber installiert?\n")
  165.     (set #msgasklibs        (cat    "In welchem Verzeichnis sollen die Bibliotheken installiert werden?\n"
  166.                                     "Es wird KEIN Verzeichnis erstellt!\n"))
  167.     (set #msgasklibsdeinst            "In welchem Verzeichnis sind die Bibliotheken installiert?\n")
  168.     (set #msgaskdocs        (cat    "In welchem Verzeichnis soll die Dokumentation installiert werden?\n"
  169.                                     "Es wird ein Verzeichnis " #destdocsdir " erstellt!\n"))
  170.     (set #msgaskdocsdeinst            "In welchem Verzeichnis ist die Dokumentation installiert?\n")
  171.     (set #msgaskutil        (cat    "In welchem Verzeichnis sollen die Goodies installiert werden?\n"
  172.                                     "Es wird ein Verzeichnis " #destutildir " erstellt!\n"))
  173.     (set #msgaskutildeinst            "In welchem Verzeichnis sind die Goodies installiert?\n")
  174.     (set #msgaskback        (cat    "In welchem Verzeichnis soll das Backup angelegt werden?\n"
  175.                                     "Es wird ein Verzeichnis " #destbackdir " erstellt!\n"))
  176.  
  177.     (set #msgconfirm        (cat    "Die folgenden Daten werden zur Installation herangezogen:\n"))
  178.     (set #msgconfirmdeinst    (cat    "Die folgenden Daten werden zur Deinstallation herangezogen:\n"))
  179.     (set #msgconfirmcpu                "\nProzessor: ")
  180.     (set #msgconfirmfpu                "\nFPU: ")
  181.     (set #msgconfirmos                "\nBetriebssystem: ")
  182.     (set #msgconfirmdevsdest        "\nDevices: ")
  183.     (set #msgconfirmlibsdest        "\nLibraries: ")
  184.     (set #msgconfirmdocsdest        "\nDokumentation: ")
  185.     (set #msgconfirmutildest        "\nGoodies: ")
  186.     (set #msgconfirmbackdest        "\nBackup: ")
  187.     (set #msgconfirmask                "\n\nSoll ich mit diesen Einstellungen fortfahren?")
  188.  
  189.     (set #msgdelrsclib        (cat    "\nAuf Ihrem System wurde eine VMC-ISDN Installation\n"
  190.                                     "gefunden welche auch die " #vmcrsc " benötigt.\n"
  191.                                     "Soll sie trotzdem gelöscht werden?\n"))
  192.  
  193.     (set #msgcardinst                "Bitte wählen Sie aus, welche Karten in\nIhrem System installiert sind.\n(Hilfe beachten!)")
  194.     (set #msgvmchc1d                "HyperCOM 1 Uhrenport-Karte")
  195.     (set #msgvmchc3d                "HyperCOM 3/3+ Uhrenport-Karte")
  196.     (set #msgvmchc3z                "HyperCOM 3z/3+ Zorro-Karte")
  197.     (set #msgvmchc4d                "HyperCOM 4/4+ Zorro-Karte")
  198.     (set #msgvmchc3ihc4d            "HyperCOM 3i installiert auf HyperCOM 4")
  199.     (set #msgvmchc3ihc3zd            "HyperCOM 3i installiert auf HyperCOM 3z")
  200.     (set #msgvmchpd                    "hyperPAR.device für alle Karten")
  201.  
  202.     (set #msgcardinsthelp    (cat    "!!! NEU !!!\n\n"
  203.                                     "Eine HyperCOM3i welche auf einer HyperCOM4 montiert ist wird über das "
  204.                                     "hyperCOM4X.device auf Unit 4 und Unit 5 angesprochen.\n\n"
  205.                                     "Eine HyperCOM3i welche auf einer HyperCOM3z montiert ist wird über das "
  206.                                     "hyperCOM3Xz.device auf Unit 2 und Unit 3 angesprochen.\n\n"
  207.                                     "Alle parallelen Schnittstellen auf den HyperCOM-Karten werden grundsätzlich "
  208.                                     "über das hyperPAR.device angesteuert.\n\nDie LPT-Schnittstelle einer HyperCOM3 "
  209.                                     "im A1200 liegt immer auf Unit 0.\n"))
  210.  
  211.     (set #msgutilinst                "Bitte wählen Sie aus, welche der Goodie-Archive Sie kopieren möchten")
  212.     (set #msgutilncommd                "NComm V3.06 - Terminalprogramm")
  213.     (set #msgutilncommpkd            "Freies Keyfile für NComm")
  214.     (set #msgutilhydrad                "Hydra V1.0r9 - Bidirektionales Transferprotokoll")
  215.     (set #msgutilporthd                "PortHandler V41 - Ersatz für original PortHandler")
  216.     (set #msgutilprtmand            "PrintManager V39 - Drucker Spooler")
  217.     (set #msgutilauxhd                "Aux-Handler V2 - Ermöglicht Remote-Login")
  218.  
  219.     (set #msgutilinsthelp    (cat    "Achtung!\n\n"
  220.                                     "Die beigelegten Archive werden NICHT installiert sondern nur in das gewählte "
  221.                                     "Zielverzeichnis kopiert. Mit anderen Worten: Selbst ist die Frau/der Mann. "))
  222.  
  223.     (set #msgendinst        (cat    "\n" #prgname " Installation beendet!\nDie installierten Dateien finden Sie in "
  224.                                     "den folgenden Verzeichnissen:\n"))
  225.     (set #msgenddeinst        (cat    "\n" #prgname " Deinstallation beendet!\n\n"))
  226.     (set #msgend2            (cat    "\n" #prgname " Programm durch Benutzer beendet!\n\n"))
  227.  
  228.     (set #msgshowreadme        (cat    "\nSoll jetzt die Datei " #readmefile " angezeigt werden?\n"))
  229.  
  230.     (set #msgreboot                    "\nDer Rechner MUß nach dieser Installation neu gestartet\nwerden. Soll das jetzt geschehen?\n")
  231.     (set #msgrebootyes                "Reboot")
  232.     (set #msgrebootno                "KEIN Reboot")
  233. )
  234.  
  235. ;***
  236. ;*** English strings
  237. ;***
  238. (
  239.     (set #readmefile                "ReadMeFirst.guide")
  240.  
  241.     (set #wronginstaller    (cat    "Attention! I've found an old version of the programm 'Installer' on "
  242.                                     "your Amiga!\n\nThe installation needs at least Installer version "
  243.                                     "43.3.\n\nPlease check your configuration!"))
  244.  
  245.     (set #msgmakedir                "The following directory will be created now: ")
  246.  
  247.     (set #msgdelete                    "\nThe following file will be deleted now:\n\n")
  248.  
  249.     (set #msgcopy                    "\nThe following file will be copied now:\n\n")
  250.  
  251.     (set #msgcopyover1        (cat    "\nI've found no version information in the source file.\nShould i copy this file?\n\n"
  252.                                     "Sourcefile:     "))
  253.     (set #msgcopyover2                "\nDestination file: ")
  254.     (set #msgcopyovernofile            "No file installed now.")
  255.  
  256.     (set #msgwelcome1        (cat    "\nWelcome to the\n\n" #prgname))
  257.     (set #msgwelcome2                " installation.\n\n")
  258.  
  259.     (set #msgcopyright        (cat    "Copyright ©1992-1999 by VMC Harald Frank\n"
  260.                                     "<vmc@vmc.de>\n"
  261.                                     "http://www.vmc.de\n\n"
  262.                                     "Installer script ©1998-99 by Carsten 'michelangelo' Scholling\n"
  263.                                     "<cscholling@vmc.de>\n"
  264.                                     "http://www.vmc.de/cscholling/\n\n"))
  265.  
  266.     (set #msgoldinst        (cat    "I have found an old " #prgname " installation on your system.\n"
  267.                                     "Please choose, how to continue the installation.\n"))
  268.  
  269.     (set #msgoldfilesexp    (cat    "\n\n\nI am now deleting some old files from your system.\n"
  270.                                     "You can confirm the action for each file and directory.\n"))
  271.  
  272.     (set #msgoldfilesave            "\n\n\nI am now deleting some old files from your system.\n")
  273.  
  274.     (set #msgoldfiles2                "Please deselect all files/dirs,\nthat should not to be deleted:\n")
  275.  
  276.     (set #msgoldinstupdate            "Update old version")
  277.     (set #msgoldinstnew                "Complete new installation")
  278.     (set #msgoldinstback            "Backup and install new")
  279.     (set #msgoldinstdeinst            "Remove installation")
  280.     (set #msgoldinstend                "Abort installation")
  281.  
  282.     (set #msgwhichparts        (cat    "\nWhich components should be installed?\nAll unselected components will be \n"
  283.                                     "automatically deinstalled!\n"))
  284.     (set #msgwhichpartsdeinst        "\nWhich components should be deinstalled?\n")
  285.  
  286.     (set #msgwhichdevs                "Devices")
  287.     (set #msgwhichlibs                "Libraries")
  288.     (set #msgwhichdocs                "Documentation")
  289.     (set #msgwhichutil                "Goodies")
  290.  
  291.     (set #msgworkingbackup            "\nCreate backup of the old installation...\n")
  292.     (set #msgworkingsearchold        "\nSearching for installed components... ;-)\n")
  293.     (set #msgworkingprepareinst        "\nPreparing installation...\n")
  294.     (set #msgworkingpreparedeinst    "\nPreparing deinstallation...\n")
  295.     (set #msgworkinginst            "\nWorking on installation...\n")
  296.     (set #msgworkingdeinst            "\nWorking on deinstallation...\n")
  297.  
  298.     (set #msguptodate        (cat    "The installed version of " #prgname " is up to date.\n"
  299.                                     "Please choose if you want a complete new installation, \n"
  300.                                     "deinstallation or quitting.\n"))
  301.  
  302.     (set #msgaskdevs        (cat    "Where should i install the devices?\n"
  303.                                     "No directory will be created!\n"))
  304.     (set #msgaskdevsdeinst            "In which directory the devices are installed?\n")
  305.     (set #msgasklibs        (cat    "Where should i install the librarys?\n"
  306.                                     "No directory will be created!\n"))
  307.     (set #msgasklibsdeinst            "In which directory the librarys are installed?\n")
  308.     (set #msgaskdocs        (cat    "Where should i install the doc files?\n"
  309.                                     "The " #destdocsdir " directory will be created!\n"))
  310.     (set #msgaskdocsdeinst            "In which directory the doc files are installed?\n")
  311.     (set #msgaskutil        (cat    "Where should i copy the goodies?\n"
  312.                                     "The " #destutildir " directory will be created!\n"))
  313.     (set #msgaskutildeinst            "In which directory the goodies are installed?\n")
  314.     (set #msgaskback        (cat    "Where should i copy the backup files?\n"
  315.                                     "The " #destbackdir " directory will be created!\n"))
  316.  
  317.     (set #msgconfirm        (cat    "The following information will be used for installation:\n"))
  318.     (set #msgconfirmdeinst    (cat    "The following information will be used for deinstallation:\n"))
  319.     (set #msgconfirmcpu                "\nCPU: ")
  320.     (set #msgconfirmfpu                "\nFPU: ")
  321.     (set #msgconfirmos                "\nOS type: ")
  322.     (set #msgconfirmdevsdest        "\nDevices: ")
  323.     (set #msgconfirmlibsdest        "\nLibraries: ")
  324.     (set #msgconfirmdocsdest        "\nDocumentation: ")
  325.     (set #msgconfirmutildest        "\nGoodies: ")
  326.     (set #msgconfirmbackdest        "\nBackup: ")
  327.     (set #msgconfirmask                "\n\nShould i use this settings?")
  328.  
  329.     (set #msgdelrsclib        (cat    "\nA VMC-ISDN installation which also uses the " #vmcrsc
  330.                                     "was found on your system.\n"
  331.                                     "Should i delete it?\n"))
  332.  
  333.     (set #msgcardinst                "Please choose the cards, that are installed in your Amiga.\n(See Help!)")
  334.     (set #msgvmchc1d                "HyperCOM 1/PortJnr card")
  335.     (set #msgvmchc3d                "HyperCOM 3/3+/PortPlus card")
  336.     (set #msgvmchc3z                "HyperCOM 3z/3+ Zorro card")
  337.     (set #msgvmchc4d                "HyperCOM 4/4+ Zorro card")
  338.     (set #msgvmchc3ihc4d            "HyperCOM3i plugin on HyperCOM4")
  339.     (set #msgvmchc3ihc3zd            "HyperCOM3i plugin on HyperCOM3z")
  340.     (set #msgvmchpd                    "hyperPAR.device for all HyperCOM's")
  341.  
  342.     (set #msgcardinsthelp    (cat    "!!! NEW !!!\n\n"
  343.                                     "A HyperCOM3i which is installed on a HyperCOM4 card will be used with "
  344.                                     "hyperCOM4X.device on units 4 and 5.\n\n"
  345.                                     "A HyperCOM3i which is installed on a HyperCOM3z card will be used with "
  346.                                     "hyperCOM3Xz.device on units 2 and 3.\n\n"
  347.                                     "All parallel interfaces on HyperCOM cards will be used through hyperPAR.device.\n\n"
  348.                                     "The LPT-interface on a HyperCOM3 in A1200 is allways unit 0.\n"))
  349.  
  350.     (set #msgutilinst                "Please choose which parts of the goodies you want to copy")
  351.     (set #msgutilncommd                "NComm V3.06 - Terminalsoftware")
  352.     (set #msgutilncommpkd            "Free & Public Keyfile for NComm")
  353.     (set #msgutilhydrad                "Hydra V1.0r9 - Bidirectional transfer protokoll")
  354.     (set #msgutilporthd                "PortHandler V41 - Replacement for the old one")
  355.     (set #msgutilprtmand            "PrintManager V39 - Printer spooler")
  356.     (set #msgutilauxhd                "Aux-Handler V2 - Shell over serial remote-login")
  357.  
  358.     (set #msgutilinsthelp    (cat    "Attention!\n\n"
  359.                                     "The included goodies will NOT be installed, but only copied "
  360.                                     "to the selected destination dir. Goodie-installation is -> do it yourself. "))
  361.  
  362.     (set #msgendinst        (cat    "\n" #prgname " Installation done!\nYou will find the installed files in the "
  363.                                     "following directories:\n"))
  364.     (set #msgenddeinst        (cat    "\n" #prgname " Deinstallation done!\n\n"))
  365.     (set #msgend2            (cat    "\n" #prgname " Installation aborted by user!\n\n"))
  366.  
  367.     (set #msgshowreadme        (cat    "\nDo you want to read the " #readmefile " now?\n"))
  368.  
  369.     (set #msgreboot                    "\nYou MUST reboot after this installation to use\nthe new drivers. Should i reboot now?\n")
  370.     (set #msgrebootyes                "Reboot")
  371.     (set #msgrebootno                "NO reboot")
  372. ))
  373.  
  374.  
  375.  
  376. ;***************************************************************************************************
  377. ;***************************************************************************************************
  378. ;***
  379. ;***    !!! NO CHANGES BEHIND THIS LINE !!!
  380. ;***
  381. ;***************************************************************************************************
  382. ;***************************************************************************************************
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389. ;***************************************************************************************************
  390. ;***************************************************************************************************
  391. ;***
  392. ;***    Standard procedures
  393. ;***
  394. ;***************************************************************************************************
  395. ;***************************************************************************************************
  396.  
  397. ;***************************************************************************************************
  398. ;***    Procedure CheckOS
  399. ;***************************************************************************************************
  400. (procedure P_CheckOS
  401.     (set os    (/ (getversion "libs:version.library") 65536))
  402.  
  403.     (if (= os 37)    (set osname "2.0"))
  404.     (if (= os 38)    (set osname "2.1"))
  405.     (if (= os 39)    (set osname "3.0"))
  406.     (if (= os 40)    (set osname "3.1"))
  407.     (if (= os 44)    (set osname "3.5"))
  408.     (if (> os 44)    (set osname "3.5+ (not known)"))
  409.  
  410.     (if (>= os minosver)
  411.         (set ret 1)
  412.         (set ret 0)
  413.     )
  414. )
  415.  
  416.  
  417. ;***************************************************************************************************
  418. ;***    Procedure CheckCPU
  419. ;***************************************************************************************************
  420. (procedure P_CheckCPU
  421.     (set cpuname    (database "cpu"))
  422.     (set fpuname    (database "fpu"))
  423.  
  424.     (if (= cpuname "68000")    (set cpu 0))
  425.     (if (= cpuname "68010")    (set cpu 1))
  426.     (if (= cpuname "68020")    (set cpu 2))
  427.     (if (= cpuname "68030")    (set cpu 3))
  428.     (if (= cpuname "68040")    ((set cpu 4) (set fpuname "FPU040")))
  429.     (if (> (exists ("sys:libs/68060.library")) 0) (
  430.         (set cpuname "68060")
  431.         (set cpu 6)
  432.     ))
  433.  
  434.     (if (= fpuname "NOFPU")        (set fpu 0))
  435.     (if (= fpuname "68881")        (set fpu 1))
  436.     (if (= fpuname "68882")        (set fpu 2))
  437.     (if (= fpuname "FPU40")        (set fpu 4))
  438.     (if (= fpuname "FPU040")    (set fpu 4))
  439.     (if (> (exists ("sys:libs/68060.library")) 0) (
  440.         (set fpuname "FPU060")
  441.     ))
  442.  
  443.     (if (>= cpu mincpu)
  444.         (set ret 1)
  445.         (set ret 0)
  446.     )
  447. )
  448.  
  449.  
  450. ;***************************************************************************************************
  451. ;***    Procedure GetVersion <file>
  452. ;***************************************************************************************************
  453. (procedure P_GetVersion p_file
  454.     (set ver    (shiftright (BITAND (getversion p_file) $ffff0000) 16))
  455. )
  456.  
  457.  
  458. ;***************************************************************************************************
  459. ;***    Procedure GetRevision <file>
  460. ;***************************************************************************************************
  461. (procedure P_GetRevision p_file
  462.     (set rev    (BITAND (getversion p_file) $ffff))
  463. )
  464.  
  465.  
  466. ;***************************************************************************************************
  467. ;***    Procedure GetFullVersion <file>
  468. ;***************************************************************************************************
  469. (procedure P_GetFullVersion p_file
  470.     (set vers    (cat (P_GetVersion p_file ) "." (P_GetRevision p_file )))
  471. )
  472.  
  473.  
  474. ;***************************************************************************************************
  475. ;***    Procedure CheckExists <file>
  476. ;***************************************************************************************************
  477. (procedure P_CheckExists p_file
  478.     (set ret (exists p_file (noreq)))
  479. )
  480.  
  481.  
  482. ;***************************************************************************************************
  483. ;***    Procedure CheckExistsPat <path> <pattern>
  484. ;***************************************************************************************************
  485. (procedure P_CheckExistsPat p_path p_pat
  486.  
  487.     (set patexists 0)
  488.  
  489.     (if (P_CheckExists p_path) (
  490.  
  491.         (run (cat "list >t:csinstcheckpat.temp " p_path " pat " p_pat " lformat \"%n\""))
  492.  
  493.         (if (> (getsize "t:csinstcheckpat.temp") 0) (set patexists 1))
  494.  
  495.         (delete "t:csinstcheckpat.temp")
  496.     ))
  497.  
  498.     (set patexists patexists)
  499. )
  500.  
  501.  
  502. ;***************************************************************************************************
  503. ;***    Procedure Rename <file> <newname>
  504. ;***************************************************************************************************
  505. (procedure P_Rename p_file p_new p_conf
  506.  
  507.     (rename p_file p_new
  508.         (prompt (cat #msgrename1 p_file #msgrename2 p_new))
  509.         (help (cat #msgrename1 p_file #msgrename2 p_new))
  510.         (confirm "expert")
  511.     )
  512. )
  513.  
  514.  
  515. ;***************************************************************************************************
  516. ;***    Procedure MakeDir <path> <name> <NOICONS>
  517. ;***************************************************************************************************
  518. (procedure P_MakeDir p_path p_noicons
  519.  
  520.     (if (<> 2 (P_CheckExists p_path)) (
  521.  
  522.         (if (<> p_noicons "noicons")
  523.  
  524.             (makedir p_path
  525.                 (prompt    #msgmakedir p_path)
  526.                 (help    #msgmakedir p_path "\n\n" @makedir-help)
  527.                 (confirm "expert")
  528.                 (infos)
  529.             )
  530.  
  531.             (makedir p_path
  532.                 (prompt    #msgmakedir p_path)
  533.                 (help    #msgmakedir p_path "\n\n" @makedir-help)
  534.                 (confirm "expert")
  535.             )
  536.         )
  537.     ))
  538. )
  539.  
  540.  
  541. ;***************************************************************************************************
  542. ;***    Procedure Delete <file> <NOICONS> <NOREQ>
  543. ;***************************************************************************************************
  544. (procedure P_Delete p_file p_noicons p_noreq
  545.  
  546.     (if (= p_noreq "noreq")
  547.  
  548.         (if (= p_noicons "noicons")
  549.  
  550.             (delete p_file
  551.                 (optional "force" "askuser")
  552.                 (all)
  553.             )
  554.             (delete p_file
  555.                 (optional "force" "askuser")
  556.                 (infos)
  557.                 (all)
  558.             )
  559.         )
  560.  
  561.         (if (= p_noicons "noicons")
  562.  
  563.             (delete p_file
  564.                 (prompt (cat #msgdelete p_file))
  565.                 (help (cat #msgdelete p_file))
  566.                 (optional "force" "askuser")
  567.                 (all)
  568.                 (confirm "expert")
  569.             )
  570.             (delete p_file
  571.                 (prompt (cat #msgdelete p_file))
  572.                 (help (cat #msgdelete p_file))
  573.                 (optional "force" "askuser")
  574.                 (infos)
  575.                 (all)
  576.                 (confirm "expert")
  577.             )
  578.         )
  579.     )
  580. )
  581.  
  582.  
  583. ;***************************************************************************************************
  584. ;***    Procedure SelectDir <default dest> <text> <helptext>
  585. ;***************************************************************************************************
  586. (procedure P_SelectDir p_dest p_text p_help
  587.  
  588.     ;*** Ask the user for any directory.
  589.     ;***
  590.     (set p_dest
  591.         (askdir
  592.             (prompt        p_text)
  593.             (help        (cat p_help "\n\n" @askdir-help))
  594.             (default    p_dest)
  595.         )
  596.     )
  597.  
  598.     (set p_dest p_dest)
  599. )
  600.  
  601.  
  602. ;***************************************************************************************************
  603. ;***    Procedure CopyNewer <source dir> <pattern> <dest dir>
  604. ;***************************************************************************************************
  605. (procedure P_CopyNewer p_srcdir p_pat p_destdir
  606.  
  607.     (debug (cat "CopyNewer " p_srcdir p_pat p_destdir))
  608.  
  609.     ;*** Compare the version/size
  610.     ;***
  611.     (foreach p_srcdir p_pat (
  612.  
  613.         (debug @each-name)
  614.  
  615.         (set res 1)
  616.  
  617.         ;*** Recursively call.
  618.         ;***
  619.         (if (= 2 (P_CheckExists (tackon p_srcdir @each-name)))
  620.         (
  621.             (P_MakeDir (tackon p_destdir @each-name) "icons")
  622.  
  623.             (set savesrc    p_srcdir)
  624.             (set savepat    p_pat)
  625.             (set savedest    p_destdir)
  626.  
  627.             (P_CopyNewer (tackon p_srcdir @each-name) p_pat (tackon p_destdir @each-name))
  628.  
  629.             (set p_srcdir    savesrc)
  630.             (set p_pat        savepat)
  631.             (set p_destdir    savedest)
  632.         )
  633.         (
  634.             ;*** Get the two version numbers.
  635.             ;***
  636.             (if (= 0 (getversion (tackon p_srcdir @each-name)))
  637.             (
  638.                 (set srcvers (cat "  (" (/ (getsize (tackon p_srcdir @each-name)) 1024) "kB)"))
  639.  
  640.                 (if ((P_CheckExists (tackon p_destdir @each-name)))
  641.                 (
  642.                     (set destname @each-name)
  643.                     (set msgcopyover2 #msgcopyover2)
  644.  
  645.                     (if (= 0 (getversion (tackon p_destdir @each-name)))
  646.                         (set destvers (cat "  (" (/ (getsize (tackon p_destdir @each-name)) 1024) "kB)"))
  647.                         (set destvers (cat (P_GetFullVersion (tackon p_destdir @each-name)) "  (" (/ (getsize (tackon p_destdir @each-name)) 1024) "kB)"))
  648.                     )
  649.                 )
  650.                 (
  651.                     (set destname #msgcopyovernofile)
  652.                     (set destvers "")
  653.                     (set msgcopyover2 "\n")
  654.                 ))
  655.  
  656.                 (set res 1)
  657.  
  658.                 (if (= 2 @user-level)
  659.                     (set res (askbool
  660.                         (prompt        (cat #msgcopyover1 @each-name " " srcvers msgcopyover2 destname " " destvers))
  661.                         (help        (cat #msgcopyover1 @each-name " " srcvers msgcopyover2 destname " " destvers))
  662.                         (default    1)
  663.                     ))
  664.                 )
  665.  
  666.                 (if (= 1 res) (
  667.                     (copyfiles
  668.                         (prompt        #msgcopy)
  669.                         (help        #msgcopy @copyfiles-help)
  670.                         (source        p_srcdir)
  671.                         (dest        p_destdir)
  672.                         (pattern    @each-name)
  673.                         (infos)
  674.                     )
  675.                 ))
  676.             )
  677.             (
  678.                 (copylib
  679.                     (prompt (cat #msgcopy @each-name))
  680.                     (help (cat #msgcopy @each-name "\n\n" @copylib-help))
  681.                     (source    (tackon p_srcdir @each-name))
  682.                     (dest     p_destdir)
  683.                     (confirm "expert")
  684.                     (infos)
  685.                 )
  686.             ))
  687.         ))
  688.     ))
  689. )
  690.  
  691.  
  692. ;***************************************************************************************************
  693. ;***    Procedure CopyNewerExists
  694. ;***************************************************************************************************
  695. (procedure P_CopyNewerExists p_srcdir p_pat p_destdir
  696.  
  697.     (if (P_CheckExistsPat p_destdir p_pat) (P_CopyNewer p_srcdir p_pat p_destdir))
  698. )
  699.  
  700.  
  701.  
  702.  
  703. ;***************************************************************************************************
  704. ;***    Procedure CopyNewer <source dir> <pattern> <dest dir>
  705. ;***************************************************************************************************
  706. (procedure P_CopyNewer p_srcdir p_pat p_destdir
  707.  
  708.     ;*** Compare the version/size
  709.     ;***
  710.     (foreach p_srcdir p_pat (
  711.  
  712.         (set res 1)
  713.  
  714.         ;*** Recursively call.
  715.         ;***
  716.         (if (= 2 (P_CheckExists (tackon p_srcdir @each-name)))
  717.         (
  718.             (P_MakeDir (tackon p_destdir @each-name) "icons")
  719.  
  720.             (set savesrc    p_srcdir)
  721.             (set savepat    p_pat)
  722.             (set savedest    p_destdir)
  723.  
  724.             (P_CopyNewer (tackon p_srcdir @each-name) p_pat (tackon p_destdir @each-name))
  725.  
  726.             (set p_srcdir    savesrc)
  727.             (set p_pat        savepat)
  728.             (set p_destdir    savedest)
  729.         )
  730.         (
  731.             ;*** Get the two version numbers.
  732.             ;***
  733.             (if (= 0 (getversion (tackon p_srcdir @each-name)))
  734.             (
  735.                 (set srcvers (cat "  (" (/ (getsize (tackon p_srcdir @each-name)) 1024) "kB)"))
  736.  
  737.                 (if ((P_CheckExists (tackon p_destdir @each-name)))
  738.                 (
  739.                     (set destname @each-name)
  740.                     (set msgcopyover2 #msgcopyover2)
  741.  
  742.                     (if (= 0 (getversion (tackon p_destdir @each-name)))
  743.                         (set destvers (cat "  (" (/ (getsize (tackon p_destdir @each-name)) 1024) "kB)"))
  744.                         (set destvers (cat (P_GetFullVersion (tackon p_destdir @each-name)) "  (" (/ (getsize (tackon p_destdir @each-name)) 1024) "kB)"))
  745.                     )
  746.                 )
  747.                 (
  748.                     (set destname #msgcopyovernofile)
  749.                     (set destvers "")
  750.                     (set msgcopyover2 "\n")
  751.                 ))
  752.  
  753.                 (set res (askbool
  754.                     (prompt        (cat #msgcopyover1 @each-name " " srcvers msgcopyover2 destname " " destvers))
  755.                     (help        (cat #msgcopyover1 @each-name " " srcvers msgcopyover2 destname " " destvers))
  756.                     (default    1)
  757.                 ))
  758.  
  759.                 (if (= 1 res) (
  760.                     (copyfiles
  761.                         (prompt #msgcopy)
  762.                         (help (cat #msgcopy @copyfiles-help))
  763.                         (source    p_srcdir)
  764.                         (dest    p_destdir)
  765.                         (pattern @each-name)
  766.                         (infos)
  767.                     )
  768.                 ))
  769.             )
  770.             (
  771.                 (copylib
  772.                     (prompt (cat #msgcopy @each-name))
  773.                     (help (cat #msgcopy @each-name "\n\n" @copylib-help))
  774.                     (source    (tackon p_srcdir @each-name))
  775.                     (dest     p_destdir)
  776.                     (confirm "expert")
  777.                     (infos)
  778.                 )
  779.             ))
  780.         ))
  781.     ))
  782. )
  783.  
  784.  
  785. ;***************************************************************************************************
  786. ;***    Procedure CopyNewerExists
  787. ;***************************************************************************************************
  788. (procedure P_CopyNewerExists p_srcdir p_pat p_destdir
  789.  
  790.     (if (P_CheckExistsPat p_destdir p_pat) (P_CopyNewer p_srcdir p_pat p_destdir))
  791. )
  792.  
  793.  
  794.  
  795.  
  796. ;***************************************************************************************************
  797. ;***    Procedure PreInstall
  798. ;***************************************************************************************************
  799. (procedure P_PreInstall
  800.  
  801.     (set @default-dest (tackon #destdocs #destdocsdir))
  802. )
  803.  
  804.  
  805. ;***************************************************************************************************
  806. ;***    Procedure Welcome
  807. ;***************************************************************************************************
  808. (procedure P_About p_update
  809.  
  810. ;    (set date (getenv (tackon (pathonly @icon) "hyperIOVersion")))
  811. ;    (set ver            (/ vers 65536))
  812. ;    (set rev            (- vers (* ver 65536)))
  813. ;    (set version        (cat ver "." rev))
  814.  
  815. ;    (message (cat #msgwelcome1 " " version #msgwelcome2 #msgcopyright))
  816.     (message (cat #msgwelcome1 #msgwelcome2 #msgcopyright))
  817. )
  818.  
  819.  
  820. ;***************************************************************************************************
  821. ;***    Procedure CheckOldInst
  822. ;***************************************************************************************************
  823. (procedure P_CheckOldInst
  824.  
  825.     (set ret 1)
  826.  
  827.     (working #msgworkingsearchold)
  828.  
  829.     ;*** Check for a version file in devs:
  830.     ;***
  831.     (if (= 0 (P_CheckExists (tackon #destdevs "hyperIOVersion")))
  832.     (
  833.         (set patcnt 0)
  834.  
  835.         ;*** Search for devices and libs (resource lib does not bother if isdn installed)
  836.         ;***
  837.         (if (P_CheckExistsPat #destdevs #devspat) (set patcnt (+ 1 patcnt)))
  838.         (if (AND (P_CheckExistsPat #destlibs #libspat) (= 0 (P_CheckExistsPat #destdevs #devsisdnpat))) (set patcnt (+ 1 patcnt)))
  839.         (if (P_CheckExistsPat (tackon #destdocs #destdocsdir) "(Documentaion|Dokumentation)") (set patcnt (+ 1 patcnt)))
  840.         (if (P_CheckExistsPat (tackon #destutil #destutildir) "Goodies") (set patcnt (+ 1 patcnt)))
  841.  
  842.         ;*** Found some very old files
  843.         ;***
  844.         (if (> patcnt 0)
  845.         (
  846.             (set ret 2)
  847.  
  848.             ;*** Let the user select what to do (update, install new).
  849.             ;***
  850.             (set    #instchoice
  851.                 (askchoice
  852.                     (prompt        #msgoldinst)
  853.                     (help        (cat #msgoldinst "\n\n" @askchoice-help))
  854.                     (choices    #msgoldinstnew #msgoldinstback #msgoldinstdeinst #msgoldinstend)
  855.                     (default    0)
  856.                 )
  857.             )
  858.  
  859.             ;*** Add 1 to the choice (If very old, no update possible!)
  860.             ;***
  861.             (set #instchoice (+ 1 #instchoice))
  862.         )
  863.         (
  864.             ;*** No previous installation found! Install new.
  865.             ;***
  866.             (set #instchoice 1)
  867.             (set ret 3)
  868.         ))
  869.     )
  870.     (
  871.         ;*** Else, we look for the version number
  872.         ;*** coded as version=high-byte and revision=low-byte.
  873.         ;***
  874.         (set oldvers (getenv (tackon #destdevs "hyperIOVersion")))
  875.         (set newvers (getenv (tackon (pathonly @icon) "hyperIOVersion")))
  876.  
  877.         (if (< oldvers newvers) (
  878.  
  879.             ;*** Let the user select what to do (update, install new).
  880.             (set    #instchoice
  881.                 (askchoice
  882.                     (prompt        #msgoldinst)
  883.                     (help        #msgoldinst "\n\n" @askchoice-help)
  884.                     (choices    #msgoldinstupdate #msgoldinstnew #msgoldinstback #msgoldinstdeinst #msgoldinstend)
  885.                     (default    0)
  886.                 )
  887.             )
  888.         )
  889.         (
  890.             (set ret 1)
  891.  
  892.             ;*** All files up to date. May the user want to deinstall the files...
  893.             (set    choice
  894.                 (askchoice
  895.                     (prompt        #msguptodate)
  896.                     (help        (cat #msguptodate "\n\n" @askchoice-help))
  897.                     (choices    #msgoldinstnew #msgoldinstdeinst #msgoldinstend)
  898.                     (default    0)
  899.                 )
  900.             )
  901.  
  902.             (if (= 0 choice)
  903.                 (set #instchoice 1)
  904.  
  905.                 (if (= 1 choice)
  906.                     (set #instchoice 3)
  907.  
  908.                     (if (= 2 choice)
  909.                         (set #instchoice 4)
  910.                     )
  911.                 )
  912.             )
  913.         ))
  914.     ))
  915.  
  916.     ;*** We have to cancel (end) the installation script
  917.     ;***
  918.     (if (= 4 #instchoice) (set ret 0))
  919.  
  920.     (set ret ret)
  921. )
  922.  
  923.  
  924. ;***************************************************************************************************
  925. ;***    Procedure PrepareInstall
  926. ;***************************************************************************************************
  927. (procedure P_PrepareInstall
  928.  
  929.     ;*** Only ask, if not deinstallation.
  930.     ;***
  931.     (if (<> 3 #instchoice)
  932.  
  933.         (
  934.             ;*** Let the user select which parts of the software should be installed
  935.             ;***
  936.             (set #instparts
  937.                 (askoptions
  938.                     (prompt        #msgwhichparts)
  939.                     (help        (cat #msgwhichparts "\n\n" @askchoice-help))
  940.                     (choices    #msgwhichdevs #msgwhichlibs #msgwhichdocs #msgwhichutil)
  941.                     (default    #instparts)
  942.                 )
  943.             )
  944.  
  945.             ;*** Let the user (ALL USERS) select which cards are installed.
  946.             ;***
  947.             (set tempuser @user-level)
  948.             (user 2)
  949.  
  950.             (if (IN #instparts 0)
  951.                 (set    #instcards
  952.                     (askoptions
  953.                         (prompt        #msgcardinst)
  954.                         (help        (cat #msgcardinsthelp "\n\n" @askoptions-help))
  955.                         (choices    #msgvmchc1d #msgvmchc3d #msgvmchc3z #msgvmchc4d #msgvmchc3ihc4d #msgvmchc3ihc3zd #msgvmchpd)
  956.                         (default    #instcards)
  957.                     )
  958.                 )
  959.  
  960.                 (set #instcards 0)
  961.             )
  962.  
  963.             (user tempuser)
  964.  
  965.             ;*** Let the user select which utils should be installed (if NO update)
  966.             ;***
  967.             (if (<> 0 #instchoice) (
  968.                 (if (IN #instparts 3)
  969.                     (set    #instutil
  970.                         (askoptions
  971.                             (prompt        #msgutilinst)
  972.                             (help        (cat #msgutilinsthelp "\n\n" @askoptions-help))
  973.                             (choices    #msgutilncommd #msgutilncommpkd #msgutilhydrad #msgutilporthd #msgutilprtmand #msgutilauxhd)
  974.                             (default    #instutil)
  975.                         )
  976.                     )
  977.                     (set #instutil 0)
  978.                 )
  979.             ))
  980.  
  981.             ;*** Ask for the destination dirs depending on selected parts
  982.             ;***
  983.             (if (IN #instparts 0) (set #destdevs (P_SelectDir #destdevs #msgaskdevs #msgaskdevs)))
  984.             (if (IN #instparts 1) (set #destlibs (P_SelectDir #destlibs #msgasklibs #msgasklibs)))
  985.             (if (IN #instparts 2) (set #destdocs (P_SelectDir #destdocs #msgaskdocs #msgaskdocs)))
  986.             (if (IN #instparts 3) (set #destutil (P_SelectDir #destutil #msgaskutil #msgaskutil)))
  987.  
  988.             ;*** Let the user select a backup dir if backup selected
  989.             ;***
  990.             (if (= 2 #instchoice) (set #destback (P_SelectDir #destback #msgaskback #msgaskback)))
  991.         )
  992.  
  993.         (
  994.             ;*** Let the user select which parts of the software should be de-installed
  995.             ;***
  996.             (set #instparts
  997.                 (askoptions
  998.                     (prompt        #msgwhichpartsdeinst)
  999.                     (help        (cat #msgwhichpartsdeinst "\n\n" @askchoice-help))
  1000.                     (choices    #msgwhichdevs #msgwhichlibs #msgwhichdocs #msgwhichutil)
  1001.                     (default    #instparts)
  1002.                 )
  1003.             )
  1004.  
  1005.             (if (= 0 (P_CheckExistsPat #destdevs #devspat)) (
  1006.  
  1007.                 (if (IN #instparts 0) (set #destdevs (P_SelectDir #destdevs #msgaskdevsdeinst #msgaskdevsdeinst)))
  1008.             ))
  1009.  
  1010.             (if (= 0 (P_CheckExistsPat #destlibs (cat "~(" #vmcrsc "|~(" #libspat "))"))) (
  1011.  
  1012.                 (if (IN #instparts 1) (set #destlibs (P_SelectDir #destlibs #msgasklibsdeinst #msgasklibsdeinst)))
  1013.             ))
  1014.  
  1015.             (if (= 0 (P_CheckExistsPat (tackon #destdocs #destdocsdir) "(Documentaion|Dokumentation)")) (
  1016.  
  1017.                 (if (IN #instparts 2) (set #destdocs (P_SelectDir #destdocs #msgaskdocsdeinst #msgaskdocsdeinst)))
  1018.             ))
  1019.  
  1020.             (if (= 0 (P_CheckExistsPat (tackon #destutil #destutildir) "Goodies")) (
  1021.  
  1022.                 (if (IN #instparts 3) (set #destutil (P_SelectDir #destutil #msgaskutildeinst #msgaskutildeinst)))
  1023.             ))
  1024.         )
  1025.     )
  1026. )
  1027.  
  1028.  
  1029. ;***************************************************************************************************
  1030. ;***    Procedure AskConfirmation
  1031. ;***************************************************************************************************
  1032. (procedure P_AskConfirmation
  1033.  
  1034.     (set msgconfirm2 "")
  1035.  
  1036.     (if (<> 3 #instchoice)
  1037.     (
  1038.         (set msgconfirm1    (cat    #msgconfirm
  1039.                                     #msgconfirmcpu    cpuname
  1040.                                     #msgconfirmfpu    fpuname
  1041.                                     #msgconfirmos    osname
  1042.         ))
  1043.  
  1044.         (if (IN #instparts 0) (set msgconfirm2 (cat msgconfirm2 #msgconfirmdevsdest #destdevs)))
  1045.         (if (IN #instparts 1) (set msgconfirm2 (cat msgconfirm2 #msgconfirmlibsdest #destlibs)))
  1046.         (if (IN #instparts 2) (set msgconfirm2 (cat msgconfirm2 #msgconfirmdocsdest (tackon #destdocs #destdocsdir))))
  1047.         (if (IN #instparts 3) (set msgconfirm2 (cat msgconfirm2 #msgconfirmutildest (tackon #destutil #destutildir))))
  1048.     )
  1049.     (
  1050.  
  1051.         (set msgconfirm1            #msgconfirmdeinst)
  1052.  
  1053.         (set msgconfirm2    (cat    #msgconfirmdevsdest    #destdevs
  1054.                                     #msgconfirmlibsdest    #destlibs
  1055.                                     #msgconfirmdocsdest    (tackon #destdocs #destdocsdir)
  1056.                                     #msgconfirmutildest    (tackon #destutil #destutildir)))
  1057.  
  1058.     ))
  1059.  
  1060.  
  1061.     (if (= 2 #instchoice)
  1062.         (set msgconfirm3    (cat    #msgconfirmbackdest (tackon #destback #destbackdir)))
  1063.     )
  1064.  
  1065.     (set msgconfirm            (cat    msgconfirm1 msgconfirm2 msgconfirm3 #msgconfirmask))
  1066.  
  1067.     ;*** All right?
  1068.     (set    choice
  1069.         (askbool
  1070.             (prompt        msgconfirm)
  1071.             (help        msgconfirm)
  1072.             (default    1)
  1073.         )
  1074.     )
  1075.  
  1076.     (set @default-dest (tackon #destdocs #destdocsdir))
  1077.  
  1078.     (set choice choice)
  1079. )
  1080.  
  1081.  
  1082.  
  1083. ;***************************************************************************************************
  1084. ;***    Procedure SetupInstall
  1085. ;***************************************************************************************************
  1086. (procedure P_SetupInstall
  1087.  
  1088.     (if (<> 3 #instchoice) (working #msgworkingprepareinst) (working #msgworkingpreparedeinst))
  1089.  
  1090.     (if (= 0 #instchoice) (
  1091.         (P_PreUpdate)
  1092.     ))
  1093.  
  1094.     (if (= 1 #instchoice) (
  1095.         (P_PreDeInstall)
  1096.         (P_PreNewInstall)
  1097.     ))
  1098.  
  1099.     (if (= 2 #instchoice) (
  1100.         (P_PreNewInstall)
  1101.     ))
  1102.  
  1103.     (if (= 3 #instchoice) (
  1104.         (P_PreDeInstall)
  1105.     ))
  1106. )
  1107.  
  1108.  
  1109. ;***************************************************************************************************
  1110. ;***    Procedure DoInstall
  1111. ;***************************************************************************************************
  1112. (procedure P_DoInstall
  1113.  
  1114.     (if (<> 3 #instchoice) (working #msgworkinginst) (working #msgworkingdeinst))
  1115.  
  1116.     (if (= 0 #instchoice) (
  1117.         (P_DoUpdate)
  1118.     ))
  1119.  
  1120.     (if (= 1 #instchoice) (
  1121.         (P_DeInstall)
  1122.         (P_NewInstall)
  1123.     ))
  1124.  
  1125.     (if (= 2 #instchoice) (
  1126.         (P_Backup)
  1127.         (P_NewInstall)
  1128.     ))
  1129.  
  1130.     (if (= 3 #instchoice) (
  1131.         (P_DeInstall)
  1132.     ))
  1133. )
  1134.  
  1135.  
  1136.  
  1137. ;***************************************************************************************************
  1138. ;***    Procedure PreUpdate
  1139. ;***************************************************************************************************
  1140. (procedure P_PreUpdate
  1141.  
  1142.     ;*** Define the source/dest dirs
  1143.     ;***
  1144.     (set srcdir (pathonly @icon))
  1145.  
  1146.     (if (= 1 #unarc) (run (cat "\"" (tackon srcdir #lhexname) "\" " #lhexopts #tempdir " " #lhexcmd " \"" (tackon srcdir #instarc) "\"") (safe)))
  1147. )
  1148.  
  1149.  
  1150. ;***************************************************************************************************
  1151. ;***    Procedure DoUpdate
  1152. ;***************************************************************************************************
  1153. (procedure P_DoUpdate
  1154.  
  1155.     ;*** Define the source dirs
  1156.     ;***
  1157.     (set srcdir (tackon #tempdir #tempinstdir))
  1158.     (set srcdirdevs (tackon srcdir "devs"))
  1159.     (set srcdirlibs (tackon srcdir "libs"))
  1160.     (set srcdirdocs (tackon srcdir "docs"))
  1161.     (set srcdirutil (tackon srcdir "goodies"))
  1162.  
  1163.  
  1164.     ;*** Now copy the files always needed
  1165.     ;***
  1166.  
  1167.     ;*** Copy the selected drivers.
  1168.     ;***
  1169.     (if (IN #instparts 0) (
  1170.  
  1171.         (set copycard 0)
  1172.         (set copiedcards 0)
  1173.         (set instcards #instcards)
  1174.  
  1175.         (if (AND (IN instcards 2) (IN instcards 5)) (set instcards (- instcards 32)))
  1176.         (if (AND (IN instcards 3) (IN instcards 4)) (set instcards (- instcards 16)))
  1177.  
  1178.         (while (< copycard 7) (
  1179.  
  1180.             (if (IN instcards copycard) (
  1181.  
  1182.                 (if (= copycard 0)                        (set cardpat #vmchc1))
  1183.                 (if (= copycard 1)                        (set cardpat #vmchc3))
  1184.                 (if (OR (= copycard 2) (= copycard 5))    (set cardpat #vmchc3z))
  1185.                 (if (OR (= copycard 3) (= copycard 4))    (set cardpat #vmchc4))
  1186.                 (if (= copycard 6)                        (set cardpat #vmchp))
  1187.  
  1188.                 (if (NOT (IN copiedcards copycard))    (
  1189.                     (set copiedcards (BITOR copiedcards (shiftleft 1 copycard)))
  1190.                     (P_CopyNewerExists srcdirdevs cardpat #destdevs)
  1191.                 ))
  1192.             ))
  1193.  
  1194.             (set copycard (+ 1 copycard))
  1195.         ))
  1196.     ))
  1197.  
  1198.  
  1199.     ;*** resource library
  1200.     ;***
  1201.     (if (IN #instparts 1) (P_CopyNewerExists srcdirlibs #vmcrsc #destlibs))
  1202.  
  1203.     ;*** documentation
  1204.     ;***
  1205.     (if (IN #instparts 2) (
  1206.         (P_MakeDir (tackon #destdocs #destdocsdir) "icons")
  1207.         (P_CopyNewerExists srcdirdocs "~(#?.info)" (tackon #destdocs #destdocsdir))
  1208.     ))
  1209.  
  1210.     ;*** Goodies
  1211.     ;***
  1212.     (if (IN #instparts 3) (
  1213.  
  1214.         (P_MakeDir (tackon #destutil #destutildir) "icons")
  1215.         (P_MakeDir (tackon (tackon #destutil #destutildir) "Goodies") "icons")
  1216.  
  1217.         (if (IN #instutil 0) (P_CopyNewerExists srcdirutil (cat #utilncomm "#?")    (tackon (tackon #destutil #destutildir) "Goodies")))
  1218.         (if (IN #instutil 1) (P_CopyNewerExists srcdirutil (cat #utilncommpk "#?")    (tackon (tackon #destutil #destutildir) "Goodies")))
  1219.         (if (IN #instutil 2) (P_CopyNewerExists srcdirutil (cat #utilhydra "#?")    (tackon (tackon #destutil #destutildir) "Goodies")))
  1220.         (if (IN #instutil 3) (P_CopyNewerExists srcdirutil (cat #utilporth "#?")    (tackon (tackon #destutil #destutildir) "Goodies")))
  1221.         (if (IN #instutil 4) (P_CopyNewerExists srcdirutil (cat #utilprtman "#?")    (tackon (tackon #destutil #destutildir) "Goodies")))
  1222.         (if (IN #instutil 5) (P_CopyNewerExists srcdirutil (cat #utilauxh "#?")        (tackon (tackon #destutil #destutildir) "Goodies")))
  1223.     ))
  1224.  
  1225.     ;*** Version ID file
  1226.     ;***
  1227.     (copyfiles
  1228.         (source (tackon (pathonly @icon) "hyperIOVersion"))
  1229.         (dest #destdevs)
  1230.         (nogauge)
  1231.         (files)
  1232.     )
  1233. )
  1234.  
  1235.  
  1236. ;***************************************************************************************************
  1237. ;***    Procedure PostUpdate
  1238. ;***************************************************************************************************
  1239. (procedure P_PostUpdate
  1240.  
  1241.     (if (= 1 #unarc) (
  1242.         (delete (tackon #tempdir #tempinstdir) (all) (safe))
  1243.         (delete (cat (tackon #tempdir #tempinstdir) ".info") (safe))
  1244.     ))
  1245. )
  1246.  
  1247.  
  1248. ;***************************************************************************************************
  1249. ;***    Procedure PreNewInstall
  1250. ;***************************************************************************************************
  1251. (procedure P_PreNewInstall
  1252.  
  1253.     ;*** Define the source/dest dirs
  1254.     ;***
  1255.     (set srcdir (pathonly @icon))
  1256.  
  1257.     (if (= 1 #unarc) (run (cat "\"" (tackon srcdir #lhexname) "\" " #lhexopts #tempdir " " #lhexcmd " \"" (tackon srcdir #instarc) "\"") (safe)))
  1258. )
  1259.  
  1260.  
  1261. ;***************************************************************************************************
  1262. ;***    Procedure NewInstall
  1263. ;***************************************************************************************************
  1264. (procedure P_NewInstall
  1265.  
  1266.     ;*** Define the source dirs
  1267.     ;***
  1268.     (set srcdir (tackon #tempdir #tempinstdir))
  1269.     (set srcdirdevs (tackon srcdir "devs"))
  1270.     (set srcdirlibs (tackon srcdir "libs"))
  1271.     (set srcdirdocs (tackon srcdir "docs"))
  1272.     (set srcdirutil (tackon srcdir "goodies"))
  1273.  
  1274.     ;*** Now copy the files always needed
  1275.     ;***
  1276.  
  1277.     ;*** Copy the selected drivers.
  1278.     ;***
  1279.     (if (IN #instparts 0) (
  1280.  
  1281.         (set copycard 0)
  1282.         (set copiedcards 0)
  1283.         (set instcards #instcards)
  1284.  
  1285.         (while (< copycard 7) (
  1286.  
  1287.             (if (IN instcards copycard) (
  1288.  
  1289.                 (if (= copycard 0)                        (set cardpat #vmchc1))
  1290.                 (if (= copycard 1)                        (set cardpat #vmchc3))
  1291.                 (if (OR (= copycard 2) (= copycard 5))    (set cardpat #vmchc3z))
  1292.                 (if (OR (= copycard 3) (= copycard 4))    (set cardpat #vmchc4))
  1293.                 (if (= copycard 6)                        (set cardpat #vmchp))
  1294.  
  1295.                 (if (NOT (IN copiedcards copycard))    (
  1296.                     (set copiedcards (BITOR copiedcards (shiftleft 1 copycard)))
  1297.                     (P_CopyNewer srcdirdevs cardpat #destdevs)
  1298.                 ))
  1299.             ))
  1300.  
  1301.             (set copycard (+ 1 copycard))
  1302.         ))
  1303.     ))
  1304.  
  1305.  
  1306.     ;*** resource library
  1307.     ;***
  1308.     (if (IN #instparts 1) (P_CopyNewer srcdirlibs #vmcrsc #destlibs))
  1309.  
  1310.     ;*** documentation
  1311.     ;***
  1312.     (if (IN #instparts 2) (
  1313.         (P_MakeDir (tackon #destdocs #destdocsdir) "icons")
  1314.         (P_CopyNewer srcdirdocs "~(#?.info)" (tackon #destdocs #destdocsdir))
  1315.     ))
  1316.  
  1317.     ;*** Goodies
  1318.     ;***
  1319.     (if (IN #instparts 3) (
  1320.  
  1321.         (P_MakeDir (tackon #destutil #destutildir) "icons")
  1322.         (P_MakeDir (tackon (tackon #destutil #destutildir) "Goodies") "icons")
  1323.  
  1324.         (if (IN #instutil 0) (P_CopyNewer srcdirutil (cat #utilncomm "#?")        (tackon (tackon #destutil #destutildir) "Goodies")))
  1325.         (if (IN #instutil 1) (P_CopyNewer srcdirutil (cat #utilncommpk "#?")    (tackon (tackon #destutil #destutildir) "Goodies")))
  1326.         (if (IN #instutil 2) (P_CopyNewer srcdirutil (cat #utilhydra "#?")        (tackon (tackon #destutil #destutildir) "Goodies")))
  1327.         (if (IN #instutil 3) (P_CopyNewer srcdirutil (cat #utilporth "#?")        (tackon (tackon #destutil #destutildir) "Goodies")))
  1328.         (if (IN #instutil 4) (P_CopyNewer srcdirutil (cat #utilprtman "#?")        (tackon (tackon #destutil #destutildir) "Goodies")))
  1329.         (if (IN #instutil 5) (P_CopyNewer srcdirutil (cat #utilauxh "#?")        (tackon (tackon #destutil #destutildir) "Goodies")))
  1330.     ))
  1331.  
  1332.     ;*** Version ID file
  1333.     ;***
  1334.     (copyfiles
  1335.         (source (tackon (pathonly @icon) "hyperIOVersion"))
  1336.         (dest #destdevs)
  1337.         (nogauge)
  1338.         (files)
  1339.     )
  1340. )
  1341.  
  1342.  
  1343. ;***************************************************************************************************
  1344. ;***    Procedure PostNewInstall
  1345. ;***************************************************************************************************
  1346. (procedure P_PostNewInstall
  1347.  
  1348.     (if (= 1 #unarc) (
  1349.         (delete (tackon #tempdir #tempinstdir) (all) (safe))
  1350.         (delete (cat (tackon #tempdir #tempinstdir) ".info") (safe))
  1351.     ))
  1352. )
  1353.  
  1354.  
  1355. ;***************************************************************************************************
  1356. ;***    Procedure Backup
  1357. ;***************************************************************************************************
  1358. (procedure P_Backup
  1359.  
  1360.     (working #msgworkingbackup)
  1361.  
  1362.     ;*** Create all needed dirs
  1363.     ;***
  1364.     (P_MakeDir #destback "icons")
  1365.     (P_MakeDir (tackon #destback #destbackdir) "icons")
  1366.  
  1367.  
  1368.     ;*** Backup version information file
  1369.     ;***
  1370.     (if (P_CheckExists (tackon #destdevs "hyperIOVersion")) (
  1371.  
  1372.         (copyfiles
  1373.             (source (tackon #destdevs "hyperIOVersion"))
  1374.             (dest (tackon #destback #destbackdir))
  1375.             (nogauge)
  1376.             (files)
  1377.         )
  1378.  
  1379.         (P_Delete (tackon #destdevs "hyperIOVersion") "noicons" "noreq")
  1380.     ))
  1381.  
  1382.  
  1383.     ;*** Backup Devs drawer
  1384.     ;***
  1385.     (foreach #destdevs #devspat (
  1386.  
  1387.         (copyfiles
  1388.             (source (tackon #destdevs @each-name))
  1389.             (dest (tackon (tackon #destback #destbackdir) "devs"))
  1390.             (nogauge)
  1391.             (files)
  1392.         )
  1393.  
  1394.         (P_Delete (tackon #destdevs @each-name) "icons" "req")
  1395.     ))
  1396.  
  1397.  
  1398.     ;*** Backup Libs drawer
  1399.     ;***
  1400.     (foreach #destlibs #libspat (
  1401.  
  1402.         (copylib
  1403.             (source (tackon #destlibs @each-name))
  1404.             (dest (tackon (tackon #destback #destbackdir) "libs"))
  1405.             (nogauge)
  1406.         )
  1407.  
  1408.         ;*** Don't delete any library if isdn installed!
  1409.         ;***
  1410.         (if (= 0 (P_CheckExistsPat #destdevs #devsisdnpat)) (P_Delete (tackon #destlibs @each-name) "icons" "req"))
  1411.     ))
  1412.  
  1413.     ;*** Backup documentation
  1414.     ;***
  1415.     (if (P_CheckExistsPat (tackon #destdocs #destdocsdir) "Documentation") (
  1416.  
  1417.         (copyfiles
  1418.             (source (tackon #destdocs #destdocsdir))
  1419.             (dest (tackon #destback #destbackdir))
  1420.             (pattern "Documentation")
  1421.             (nogauge)
  1422.             (infos)
  1423.         )
  1424.  
  1425.         (P_Delete (tackon (tackon #destdocs #destdocsdir) "Documentation") "icons" "req")
  1426.     ))
  1427.  
  1428.     (if (P_CheckExistsPat (tackon #destdocs #destdocsdir) "Dokumentation") (
  1429.  
  1430.         (copyfiles
  1431.             (source (tackon #destdocs #destdocsdir))
  1432.             (dest (tackon #destback #destbackdir))
  1433.             (pattern "Dokumentation")
  1434.             (nogauge)
  1435.             (infos)
  1436.         )
  1437.  
  1438.         (P_Delete (tackon (tackon #destdocs #destdocsdir) "Dokumentation") "icons" "req")
  1439.     ))
  1440.  
  1441.  
  1442.     ;*** Backup goodies
  1443.     ;***
  1444.     (if (P_CheckExistsPat (tackon #destutil #destutildir) "Goodies") (
  1445.  
  1446.         (copyfiles
  1447.             (source (tackon #destutil #destutildir))
  1448.             (dest (tackon #destback #destbackdir))
  1449.             (pattern "Goodies")
  1450.             (nogauge)
  1451.             (infos)
  1452.         )
  1453.  
  1454.         (P_Delete (tackon (tackon #destutil #destutildir) "Goodies") "icons" "req")
  1455.     ))
  1456.  
  1457. )
  1458.  
  1459.  
  1460. ;***************************************************************************************************
  1461. ;***    Procedure PreDeInstall
  1462. ;***************************************************************************************************
  1463. (procedure P_PreDeInstall
  1464.  
  1465.     ;*** Create a scriptfile header
  1466.     ;***
  1467.     (run (cat "echo >t:csinstdelete.temp \";csinstdelete.temp - Temporary file - Do not edit or delete*n\""))
  1468.  
  1469.     (set match 0)
  1470.  
  1471.     ;*** Check for files to delete
  1472.     ;***
  1473.     (if (IN #instparts 0)   (if (P_CheckExistsPat #destdevs #devspat)                                                (set match (BITOR match 1))))
  1474.     (if (IN #instparts 1)   (if (P_CheckExistsPat #destlibs (cat "~(" #vmcrsc "|~(" #libspat "))"))                    (set match (BITOR match 2))))
  1475.     (if (IN #instparts 2)   (if (P_CheckExistsPat (tackon #destdocs #destdocsdir) "(Documentaion|Dokumentation)")    (set match (BITOR match 4))))
  1476.     (if (IN #instparts 3)   (if (P_CheckExistsPat (tackon #destutil #destutildir) "Goodies")                        (set match (BITOR match 8))))
  1477.  
  1478.  
  1479.     ;*** Delete libs files if available AND no isdn installed (ask expert user)!
  1480.     ;***
  1481.     (if (= 3 #instchoice) (
  1482.  
  1483.         (if (IN match 1) (
  1484.  
  1485.             (set isdninst (P_CheckExistsPat #destdevs #devsisdnpat))
  1486.  
  1487.             (if (<> 0 isdninst) (
  1488.                 (if (IN match 4) (
  1489.                     (if (> (getversion (tackon #destlibs #vmcrsc)) (getversion (tackon (tackon (pathonly @icon) "libs") #vmcrsc))) (
  1490.  
  1491.                         (set delrsclib 0)
  1492.  
  1493.                         (if (= 2 @user-level) (
  1494.  
  1495.                             (set    delrsclib
  1496.                                 (askbool
  1497.                                     (prompt        #msgdelrsclib)
  1498.                                     (help        (cat #msgdelrsclib @askbool-help))
  1499.                                     (default    0)
  1500.                                 )
  1501.                             )
  1502.                         ))
  1503.  
  1504.                         (if (= 1 delrsclib) (P_DeleteConfirmFiles #destlibs #vmcrsc 0))
  1505.                     ))
  1506.                 ))
  1507.             ))
  1508.         ))
  1509.     ))
  1510.  
  1511.     ;*** Reset vmcresource flag
  1512.     ;***
  1513.     (set match (BITAND match 15))
  1514.  
  1515.     ;*** Found some?
  1516.     ;***
  1517.     (if (<> match 0 ) (
  1518.  
  1519.         (if (= 2 @user-level) (message #msgoldfilesexp) (message #msgoldfilesave))
  1520.  
  1521.         ;*** Delete devs files.
  1522.         ;***
  1523.         (if (IN match 0) (P_DeleteConfirmFiles #destdevs #devspat 0))
  1524.  
  1525.         ;*** Delete libs files.
  1526.         ;***
  1527.         (if (IN match 1) (P_DeleteConfirmFiles #destlibs #libspat 0))
  1528.  
  1529.         ;*** Delete dokumentation files.
  1530.         ;***
  1531.         (if (IN match 2) (P_DeleteConfirmFiles (tackon #destdocs #destdocsdir) "(Documentation|Dokumentation)" 1))
  1532.  
  1533.         ;*** Delete goodie files.
  1534.         ;***
  1535.         (if (IN match 3) (P_DeleteConfirmFiles (tackon #destutil #destutildir) "Goodies" 1))
  1536.  
  1537.         ;*** Delete docs/goodies directory.
  1538.         ;***
  1539.         (P_DeleteConfirmFiles #destdocs #destdocsdir 1)
  1540.  
  1541.         (if (OR (<> #destdocs #destutil) (<> #destdocsdir #destutildir)) (
  1542.             (P_DeleteConfirmFiles #destutil #destutildir 1)
  1543.  
  1544.         ))
  1545.     ))
  1546. )
  1547.  
  1548.  
  1549. ;***************************************************************************************************
  1550. ;***    Procedure DeleteConfirmFiles
  1551. ;***************************************************************************************************
  1552. (procedure P_DeleteConfirmFiles p_dir p_pat p_isdir
  1553.  
  1554.     ;*** Reset all used vars.
  1555.     ;***
  1556.     (set cnt 0)
  1557.     (set defopt 0)
  1558.  
  1559.     (if (P_CheckExistsPat p_dir p_pat) (
  1560.  
  1561.         (foreach p_dir p_pat (
  1562.  
  1563.             (symbolset (cat "f" cnt) (tackon p_dir @each-name))
  1564.  
  1565.             (set defopt (BITOR defopt (shiftleft 1 cnt)))
  1566.             (set cnt (+ 1 cnt))
  1567.  
  1568.             (if (= 14 cnt) (
  1569.                 (set usedopt (P_DeleteConfirmFiles2 defopt p_isdir f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13))
  1570.  
  1571.                 (set cnt 0)
  1572.                 (set defopt 0)
  1573.             ))
  1574.         ))
  1575.  
  1576.         (while (< cnt 14) (
  1577.             (symbolset (cat "f" cnt) "")
  1578.             (set cnt (+ 1 cnt))
  1579.         ))
  1580.  
  1581.         (set usedopt (P_DeleteConfirmFiles2 defopt p_isdir f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13))
  1582.     ))
  1583.  
  1584.     (set usedopt usedopt)
  1585. )
  1586.  
  1587.  
  1588. ;***************************************************************************************************
  1589. ;***    Procedure DeleteConfirmFiles2
  1590. ;***************************************************************************************************
  1591. (procedure P_DeleteConfirmFiles2 p_defopt p_isdir p_f0 p_f1 p_f2 p_f3 p_f4 p_f5 p_f6 p_f7 p_f8 p_f9 p_f10 p_f11 p_f12 p_f13
  1592.  
  1593.     (if (= 2 @user-level) (
  1594.  
  1595.         (set    choice (
  1596.             (askoptions
  1597.                 (prompt        #msgoldfiles2)
  1598.                 (help        #msgoldfiles2 @askoptions-help)
  1599.                 (choices    p_f0 p_f1 p_f2 p_f3 p_f4 p_f5 p_f6 p_f7 p_f8 p_f9 p_f10 p_f11 p_f12 p_f13)
  1600.                 (default    p_defopt)
  1601.             )
  1602.         ))
  1603.     )
  1604.     (set choice p_defopt))
  1605.  
  1606.     (set cnt 0)
  1607.  
  1608.     (while (< cnt 14) (
  1609.  
  1610.         (if (IN choice cnt) (
  1611.             (set delfile (select cnt p_f0 p_f1 p_f2 p_f3 p_f4 p_f5 p_f6 p_f7 p_f8 p_f9 p_f10 p_f11 p_f12 p_f13))
  1612.  
  1613.             ;*** Append a delete command for each file/dir.
  1614.             ;***
  1615.             (if (<> 0 p_isdir )
  1616.                 (run (cat "echo >>t:csinstdelete.temp \"delete " delfile " all\""))
  1617.                 (run (cat "echo >>t:csinstdelete.temp \"delete " delfile "\""))
  1618.             )
  1619.         ))
  1620.  
  1621.         (set cnt (+ 1 cnt))
  1622.     ))
  1623.  
  1624.     (set choice choice)
  1625. )
  1626.  
  1627.  
  1628. ;***************************************************************************************************
  1629. ;***    Procedure DeInstall
  1630. ;***************************************************************************************************
  1631. (procedure P_DeInstall
  1632.  
  1633.     ;*** Now REALLY delete the old files (script made by SetupInstall/PreDeInstall).
  1634.     ;***
  1635.     (if (<> 1 @pretend) (
  1636.         (execute "t:csinstdelete.temp")
  1637.     ))
  1638.  
  1639.     (P_Delete (tackon #destdevs "hyperIOVersion") "noicons" "noreq")
  1640. )
  1641.  
  1642.  
  1643. ;***************************************************************************************************
  1644. ;***    Procedure AfterInstall
  1645. ;***************************************************************************************************
  1646. (procedure P_AfterInstall
  1647.  
  1648.     (if (<> 3 #instchoice) (
  1649.  
  1650.         (if (<> 0 (P_CheckExists "sys:utilities/multiview"))
  1651.             (set mvpath "sys:utilities/multiview ")
  1652.  
  1653.             (if (<> 0 (P_CheckExists "sys:system/multiview"))
  1654.                 (set mvpath "sys:system/multiview ")
  1655.  
  1656.                 (if (<> 0 (P_CheckExists "sys:utilities/more"))
  1657.                     (set mvpath "sys:utilities/more ")
  1658.  
  1659.                     (if (<> 0 (P_CheckExists "sys:system/more"))
  1660.                         (set mvpath "sys:system/more ")
  1661.                         (set mvpath "echo >con: ")
  1662.                     )
  1663.                 )
  1664.             )
  1665.         )
  1666.  
  1667.         (if (= 1 (askbool
  1668.             (prompt #msgshowreadme)
  1669.             (default 1)
  1670.             (help (cat #msgshowreadme "\n\n" @askbool-help))))
  1671.  
  1672.             (run (cat mvpath (tackon (tackon #tempdir #tempinstdir) #readmefile)) (safe))
  1673.         )
  1674.  
  1675.         (set tempuser @user-level)
  1676.         (user 2)
  1677.         (if (= 1 (askbool
  1678.             (prompt #msgreboot)
  1679.             (help (cat #msgreboot "\n\n" @askbool-help))
  1680.             (default 1)
  1681.             (choices #msgrebootyes #msgrebootno))) (
  1682.  
  1683.                 (run (tackon (tackon #tempdir #tempinstdir) "reboot"))
  1684.             )
  1685.         )
  1686.  
  1687.         (user tempuser)
  1688.         (working #msgworkingcleanup)
  1689.  
  1690.         (if (= 0 #instchoice) (
  1691.             (P_PostUpdate)
  1692.         ))
  1693.  
  1694.         (if (= 1 #instchoice) (
  1695.             (P_PostNewInstall)
  1696.         ))
  1697.  
  1698.         (if (= 2 #instchoice) (
  1699.             (P_PostNewInstall)
  1700.         ))
  1701.  
  1702.         (if (= 3 #instchoice) (
  1703.             (P_PostNewInstall)
  1704.         ))
  1705.     ))
  1706. )
  1707.  
  1708.  
  1709. ;***************************************************************************************************
  1710. ;***    Procedure Cleanup
  1711. ;***************************************************************************************************
  1712. (procedure P_Cleanup
  1713.  
  1714.     (if (= 0 #instchoice) (
  1715.         (P_PostUpdate)
  1716.     ))
  1717.  
  1718.     (if (= 1 #instchoice) (
  1719.         (P_PostNewInstall)
  1720.     ))
  1721.  
  1722.     (if (= 2 #instchoice) (
  1723.         (P_PostNewInstall)
  1724.     ))
  1725.  
  1726.     (if (= 3 #instchoice) (
  1727.         (P_PostNewInstall)
  1728.     ))
  1729.  
  1730.     (delete "t:csinstcheckpat#?.temp")
  1731.     (delete "t:csinstdelete.temp")
  1732. )
  1733.  
  1734.  
  1735. ;***************************************************************************************************
  1736. ;***    Entry point
  1737. ;***************************************************************************************************
  1738. ;*** No user should have a Installer version below 43.3!
  1739.  
  1740. (if (< @installer-version 2818051) (
  1741.     (message #wronginstaller)
  1742.     (exit (quiet))
  1743. ))
  1744.  
  1745. (complete 0)
  1746.  
  1747. (if (<> 1 #unarc )        (set #tempdir ""))
  1748.  
  1749. (P_PreInstall)
  1750.  
  1751. (complete 2)
  1752. (welcome)
  1753.  
  1754. (complete 4)
  1755. (P_About)
  1756.  
  1757. (if (P_CheckOldInst) (
  1758.  
  1759.     (complete 6)
  1760.  
  1761.     (P_CheckOS)
  1762.     (P_CheckCPU)
  1763.  
  1764.     (complete 8)
  1765.     (set ret 0)
  1766.  
  1767.     (while (= 0 ret) (
  1768.  
  1769.         (P_PrepareInstall)
  1770.  
  1771.         (complete 10)
  1772.  
  1773.         ;*** Ask for confirmation
  1774.         ;***
  1775.         (set ret (P_AskConfirmation))
  1776.     ))
  1777.  
  1778.     (complete 20)
  1779.     (P_SetupInstall)
  1780.  
  1781.     (complete 40)
  1782.     (P_DoInstall)
  1783.  
  1784.     (complete 90)
  1785.     (P_AfterInstall)
  1786.  
  1787.     (complete 100)
  1788.     (P_Cleanup)
  1789.  
  1790.     (if (<> 3 #instchoice) (
  1791.  
  1792.         (set msgend #msgendinst)
  1793.         (if (IN #instparts 0) (set msgend (cat msgend #msgconfirmdevsdest #destdevs)))
  1794.         (if (IN #instparts 1) (set msgend (cat msgend #msgconfirmlibsdest #destlibs)))
  1795.         (if (IN #instparts 2) (set msgend (cat msgend #msgconfirmdocsdest (tackon #destdocs #destdocsdir))))
  1796.         (if (IN #instparts 3) (set msgend (cat msgend #msgconfirmutildest (tackon #destutil #destdocsdir))))
  1797.         (if (= 2 #instchoice) (set msgend (cat msgend #msgconfirmbackdest (tackon #destback #destbackdir))))
  1798.     )
  1799.     (
  1800.         (set msgend #msgenddeinst)
  1801.     ))
  1802.  
  1803.     (exit msgend)
  1804. ))
  1805.  
  1806. (complete 100)
  1807. (P_Cleanup)
  1808. (exit #msgend2 (quiet))
  1809.  
  1810.  
  1811.